﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Ctrl
Imports System.Windows.Forms
Imports System.Drawing.Printing
Imports System.IO
Imports System.Web.Services
Imports System.Web.Services.Protocols

Partial Class Seguimiento_seguimientpo
    Inherits System.Web.UI.Page

    Private separacionVenta As EseparacionVenta = Nothing
    Private separasionVentas As List(Of EseparacionVenta) = Nothing
    Private jsMensaje As String = Nothing
    Private seguimiento As List(Of EseparacionVenta) = Nothing

#Region "           Busqueda                                "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarTpoBusquedaSeguimiento()
            cargarBancos()
            cargarNotarias()
            cargarFormaPago()
        End If
    End Sub
    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click
        cargarSeguimiento()
    End Sub

    Private Sub cargarTpoBusquedaSeguimiento()
        Dim Eestado As New Ecommons
        selTpoFindSeguimiento.DataSource = Eestado.tpoBusquedaSeguimiento
        selTpoFindSeguimiento.DataTextField = "descripcion"
        selTpoFindSeguimiento.DataValueField = "codigo"
        selTpoFindSeguimiento.DataBind()
    End Sub
    Private Sub cargarBancos()
        selBanco.DataSource = RentFinanciera.SeleccionarTodo(Me.Master.descEmpresa, True)
        selBanco.DataTextField = "descEntidadFin"
        selBanco.DataValueField = "idEntidadFin"
        selBanco.DataBind()
    End Sub
    Private Sub cargarNotarias()
        SelNotaria.DataSource = Rnotaria.SeleccionarXEstado(Me.Master.descEmpresa, True)
        SelNotaria.DataTextField = "descNotaria"
        SelNotaria.DataValueField = "idNotaria"
        SelNotaria.DataBind()
    End Sub
    Private Sub cargarSeguimiento()
        Dim pSeparacionVenta As New EseparacionVenta

        With pSeparacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .tpoGestion = selTpoFindSeguimiento.Value
            .fchInicio = txtfechaInicio.Text
            .fchFin = txtfechaFin.Text
            .idEntidadFin = selBanco.Value
            .nroKardex = txtKardex.Text
            .idFormaPago = selFormaPago.Value  'MPE
        End With
        separasionVentas = RseparacionVenta.SeleccionarSeguimiento(Me.Master.descEmpresa, False, txtCliente.Text.Trim, pSeparacionVenta)
        Session("Seguimiento") = separasionVentas
        If Not separasionVentas Is Nothing Then
            gvwLista.DataSource = separasionVentas
            gvwLista.DataBind()
        End If
    End Sub
    Protected Sub gvwLista_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwLista.RowCommand
        Select Case e.CommandName
            Case "Edit"
        End Select
    End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwLista, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwLista_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwLista.RowEditing
        Dim id As Int32 = CType(CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkUnidadVenta"), LinkButton).Text, Int32)
        hdfIdSeparacionVenta.Value = id
        separasionVentas = Session("Seguimiento")
        Dim Lseguimiento = From v In separasionVentas _
                            Where v.idSeparacionVenta.ToString = id _
                            Select v

        lblNombreCliente.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkNombre"), LinkButton).Text
        separacionVenta = New EseparacionVenta
        With separacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = id
            .idEntidadFin = Lseguimiento.ElementAt(0).idEntidadFin
            hdfIdEntidadFin.Value = Lseguimiento.ElementAt(0).idEntidadFin
        End With
        cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoXEntidadFin(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)
        cargarEntrega(RseparacionVenta.SeleccionarSeguimientoEntrega(Me.Master.descEmpresa, separacionVenta))
        cargarPartida(RunidInmobiliarias.SeleccionarXNroPartida(Me.Master.descEmpresa, separacionVenta), Me.gvwPartida)

        selInstancias.DataSource = RSeguimientoFin.SeleccionarTodo(Me.Master.descEmpresa, True, Lseguimiento.ElementAt(0).idEntidadFin)
        selInstancias.DataTextField = "descSeguimiento"
        selInstancias.DataValueField = "idSeguimiento"
        selInstancias.DataBind()
    End Sub
    Private Sub cargarInstancias(ByVal pSeguimientoCreditoHip As List(Of EseguimientoCreditoHip), ByRef gvw As GridView)
        gvw.DataSource = pSeguimientoCreditoHip
        gvw.DataBind()
        upGvwInstancias.Update()
    End Sub
    Private Sub cargarFormaPago()
        Dim formaPagos As List(Of EformaPago) = Nothing
        formaPagos = RformaPago.SeleccionarXEstado(Me.Master.descEmpresa, True)
        If Not formaPagos Is Nothing Then
            selFormaPago.DataSource = formaPagos
            selFormaPago.DataTextField = "descFormaPago"
            selFormaPago.DataValueField = "idFormaPago"
            selFormaPago.DataBind()
        End If
    End Sub
    Private Sub cargarEntrega(ByRef pSeparacionVenta As EseparacionVenta)
        Me.txtFchEntrega.Text = pSeparacionVenta.fchEntrega.Trim
        Me.txtObservacionEntrega.Value = pSeparacionVenta.obsEntrega
        Me.SelNotaria.Value = pSeparacionVenta.idNotaria
        Me.txtNroKardex.Value = pSeparacionVenta.nroKardex
        Me.txtNroTitulo.Value = pSeparacionVenta.nroTitulo
        Me.txtObservacionNotaria.Value = pSeparacionVenta.obsNotaria
    End Sub
    Private Sub cargarPartida(ByVal pUnidInmobiliarias As List(Of EunidInmobiliarias), ByRef gvw As GridView)
        gvw.DataSource = pUnidInmobiliarias
        gvw.DataBind()
    End Sub
    Protected Sub btnExcelSeguimientoCreditos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcelSeguimientoCreditos.Click
        seguimiento = Session("Seguimiento")
        If Not seguimiento Is Nothing Then
            Dim fileName As String = "Consulta{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
            Response.Write("Unidad venta")
            Response.Write(vbTab)
            Response.Write("Fecha Separacion")
            Response.Write(vbTab)
            Response.Write("Fecha Venta")
            Response.Write(vbTab)
            'Response.Write("Edificio")
            'Response.Write(vbTab)
            Response.Write("Nombre del Cliente")
            Response.Write(vbTab)
            Response.Write("Telefono")
            Response.Write(vbTab)
            Response.Write("Monto Saldo")
            Response.Write(vbTab)
            Response.Write("Entidad Financiera")
            Response.Write(vbTab)
            Response.Write("Forma de Pago")
            Response.Write(vbTab)
            Response.Write("Estado")
            Response.Write(vbTab)
            Response.Write("Instancia Seq. Hip.")
            Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String

            For Each unidad In seguimiento
                value = unidad.idSeparacionVenta
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.fchSeparacion
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.fchVenta
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.nombreCompletosCliente
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.telefonoFijo
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.financiamiento
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.descEntidadFin
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.descFormaPago
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.descGestion
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.descSeguimiento
                Response.Write(value)
                Response.Write(vbCrLf)
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
#End Region

#Region "           Registro                                "
    Private Sub cargarInstancias()
        'selInstancias.DataSource = Rnotaria.SeleccionarXEstado(True)
        'selInstancias.DataTextField = "descNotaria"
        'selInstancias.DataValueField = "idNotaria"
        'selInstancias.DataBind()
    End Sub
    Protected Sub gvwInstancias_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwInstancias.RowCommand
        Select Case e.CommandName
            Case "Edit"
                txtIdSeguimiento.text = CType(e.CommandArgument, String)
        End Select
    End Sub
    Protected Sub gvwInstancias_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwInstancias.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwInstancias, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwInstancias_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwInstancias.RowEditing
        Dim fecha As String = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkFchModificacion"), LinkButton).Text
        If fecha.Trim.Length > 0 Then
            txtFchModificacionInstancia.Text = fecha.Trim
        Else
            txtFchModificacionInstancia.Text = ""
        End If
        selInstancias.Value = CType(CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkSeguimiento"), LinkButton).CommandArgument, Int32)
        txtObsInstancias.Value = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkObservación"), LinkButton).Text
        mpInstancias.Show()
    End Sub
    Protected Sub btnGrabarInstancias_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabarInstancias.Click
        Dim pSeguimientoCreditoHip As New EseguimientoCreditoHip
        With pSeguimientoCreditoHip
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = hdfIdSeparacionVenta.Value
            .estadoCreditoHip = selInstancias.Value.ToString
            .fchModificacion = txtFchModificacionInstancia.Text
            .Observacion = txtObsInstancias.Value.Trim.ToUpper
            .idUsuario = Me.Master.idUsuario
        End With
        Dim resultado As Boolean = RseguimientoCreditoHip.EditarInstanciasCreditoHip(Me.Master.descEmpresa, pSeguimientoCreditoHip)
        If resultado Then
            separacionVenta = New EseparacionVenta
            With separacionVenta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = hdfIdSeparacionVenta.Value
                .idEntidadFin = hdfIdEntidadFin.Value
            End With
            cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoXEntidadFin(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)
            mpInstancias.Hide()
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert(' El registro fue guardado satisfactoriamente.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        Else
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If        
    End Sub

    Protected Sub gvwPartida_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvwPartida.RowCommand
        Select Case e.CommandName
            Case "Edit"
                txtIdNroPartida.Text = CType(e.CommandArgument, String)
        End Select
    End Sub
    Protected Sub gvwPartida_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwPartida.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwPartida, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwPartida_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwPartida.RowEditing
        lblInmuebleCompleto.Text = CType(gvwPartida.Rows(e.NewEditIndex).FindControl("lnkInmueble"), LinkButton).Text
        txtNroPartida.Value = CType(gvwPartida.Rows(e.NewEditIndex).FindControl("lnknroPartida"), LinkButton).Text
        mpNroPartida.Show()
    End Sub
    Protected Sub btnGuardarNroPartida_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardarNroPartida.Click
        If txtNroPartida.Value.Trim.Length Then
            Dim arr As String() = Split(txtIdNroPartida.Text, ",")
            separacionVenta = New EseparacionVenta
            With separacionVenta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = CType(arr(3).ToString, Int32)
            End With
            Dim separacionVentaDetalle As EseparacionVentaDetalle
            separacionVentaDetalle = New EseparacionVentaDetalle
            With separacionVentaDetalle
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = CType(arr(2).ToString, Int32)
                .idSeparacionVentaDetalle = CType(arr(3).ToString, Int32)
                .nroPartida = txtNroPartida.Value
                .idUsuario = Me.Master.idUsuario
            End With
            Dim resultado As Boolean = RseparacionVentaDetalle.EditarNroPartida(Me.Master.descEmpresa, separacionVentaDetalle)
            If resultado Then
                cargarPartida(RunidInmobiliarias.SeleccionarXNroPartida(Me.Master.descEmpresa, separacionVenta), Me.gvwPartida)
                mpNroPartida.Hide()
                jsMensaje = "<script>javascript:showDivRegistro();javascript:alert(' El registro fue guardado satisfactoriamente.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            Else
                jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            End If
        End If
    End Sub
    Protected Sub btnGrabar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabar.Click
        Dim pSeparacionVenta As New EseparacionVenta
        With pSeparacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = hdfIdSeparacionVenta.Value
            .fchEntrega = txtFchEntrega.Text
            .obsEntrega = txtObservacionEntrega.Value
            .idNotaria = SelNotaria.Value
            .nroKardex = txtNroKardex.Value
            .nroTitulo = txtNroTitulo.Value
            .obsNotaria = txtObservacionNotaria.Value
            .idUsuario = Me.Master.idUsuario
        End With
        Dim resulado As Boolean = RseparacionVenta.EditarSeguimiento(Me.Master.descEmpresa, pSeparacionVenta)
        If resulado Then
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Se registro correctamente.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        Else
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
#End Region

End Class
